CSS Custom Highlight API bilan veb-loyihalaringizda matnni belgilash uslubini o'zgartiring. Noyob va jozibali foydalanuvchi tajribasini yarating.
UI darajasini oshiring: Matnni belgilash uslubi uchun CSS Custom Highlight API'ni o'zlashtirish
Ko'p yillar davomida veb-saytlarda matnni belgilash uslubi ancha cheklangan edi. Biz asosan brauzerning standart uslubi yoki eng yaxshi holatda fon va matn rangini oddiy o'zgartirish bilan cheklanib qolgan edik. Biroq, CSS Custom Highlight API hamma narsani o'zgartiradi. U tanlangan matnning ko'rinishini to'liq sozlash uchun kuchli va moslashuvchan usulni taqdim etadi, bu esa UI dizayni va foydalanuvchilarning jalb etilishi uchun butunlay yangi imkoniyatlar olamini ochadi.
CSS Custom Highlight API nima?
CSS Custom Highlight API - bu dasturchilarga matn belgilarini oddiy fon va matn rangidan tashqari maxsus uslublar yordamida uslublash imkonini beruvchi CSS xususiyatlari to'plamidir. U ::highlight psevdo-elementini va tegishli xususiyatlarni taqdim etadi, bu sizga ma'lum turdagi matn belgilarini nishonga olish va ularga noyob uslublarni qo'llash imkonini beradi. Ushbu API vizual jihatdan jozibaliroq va ma'lumotliroq belgilashlarga imkon berish orqali foydalanuvchi tajribasini sezilarli darajada yaxshilaydi.
CSS Custom Highlight API'ning asosiy xususiyatlari:
::highlightPsevdo-elementi: API'ning asosiy qismi bo'lib, tanlangan matnni nishonga olish imkonini beradi.- Nomli belgilar: Maxsus belgi nomlarini yarating va ularni ma'lum elementlarga qo'llang.
selectionBelgisi: Foydalanuvchining asosiy matn belgisini ifodalovchi standart belgi.- Yaxshilangan qulaylik: Ko'rish qobiliyati cheklangan foydalanuvchilar uchun vizual jihatdan aniqroq va foydaliroq belgilashlar yarating.
Brauzerlar bilan mosligi
2023-yil oxiri/2024-yil boshiga kelib, CSS Custom Highlight API'ni brauzerlarda qo'llab-quvvatlash ortib bormoqda, ammo hali universal emas. Chrome va Edge kabi yirik brauzerlarda yaxshi qo'llab-quvvatlanadi. Safari'da qo'llab-quvvatlash mavjud, ammo versiyaga qarab cheklangan bo'lishi mumkin. API'ni ishlab chiqarish muhitida joriy qilishdan oldin har doim eng so'nggi brauzer mosligi ma'lumotlari uchun caniuse.com saytini tekshiring. Eski brauzerli foydalanuvchilar uchun veb-saytingiz funksional bo'lib qolishini ta'minlash uchun progressiv yaxshilanishdan foydalanishni o'ylab ko'ring.
Asosiy foydalanish: Standart matn belgisini uslublash
Keling, ::highlight psevdo-elementidan foydalanib standart matn belgisini uslublashning oddiy misolidan boshlaylik.
Misol: Fon va matn rangini o'zgartirish
Ushbu misol tanlangan matnning fon va matn rangini qanday o'zgartirishni ko'rsatadi.
::highlight {
background-color: #FFFF00; /* Sariq */
color: #000000; /* Qora */
}
Ushbu CSS kodida biz ::highlight yordamida standart matn belgisini nishonga olib, uning fon rangini sariq (#FFFF00) va matn rangini qora (#000000) qilib belgilayapmiz. Bu tanlangan matn ko'rinishini sozlash uchun oddiy, ammo samarali usulni taqdim etadi.
Maxsus belgi nomlarini yaratish
CSS Custom Highlight API'ning haqiqiy kuchi maxsus belgi nomlarini aniqlash qobiliyatida yotadi. Bu sizga veb-saytingizning ma'lum elementlari yoki bo'limlarini nishonga olish va ularning matn belgilariga noyob uslublarni qo'llash imkonini beradi.
Misol: Kod parchalarini ajratib ko'rsatish
Aytaylik, siz veb-saytingizdagi kod parchalarini oddiy matndan farqli ravishda ajratib ko'rsatmoqchisiz. Bunga maxsus belgi nomini yaratish orqali erishishingiz mumkin.
- Maxsus belgi nomini aniqlang: CSS'da maxsus belgi nomini aniqlash uchun
highlight()funksiyasidan foydalaning. - Belgi nomini elementlarga qo'llang: Muayyan elementlarni nishonga olish va maxsus uslubni qo'llash uchun
::highlight(sizning-belgi-nomingiz)psevdo-elementidan foydalaning.
/* Kod parchalari uchun maxsus belgi nomini aniqlash */
::highlight(code-highlight) {
background-color: #ADD8E6; /* Ochiq ko'k */
color: #00008B; /* To'q ko'k */
font-weight: bold;
}
/* Belgi nomini kod elementlariga qo'llash */
code::highlight(code-highlight) {
/* Uslub faqat tegi *ichidagi* matn tanlanganda qo'llaniladi */
}
/* Belgini ma'lum bir sinfga ega span'larga qo'llash */
.highlighted-code::highlight(code-highlight) {
}
Ushbu misolda biz code-highlight deb nomlangan maxsus belgi nomini aniqladik. Keyin bu belgini code elementlariga qo'lladik. Fon rangi och ko'k (#ADD8E6), matn rangi to'q ko'k (#00008B) va shrift qalinligi 'bold' qilib belgilangan. Endi code elementi ichida matn tanlanganda, u ushbu maxsus uslublar bilan bezatiladi.
Kengaytirilgan foydalanish: Muayyan matn diapazonlarini nishonga olish
CSS Custom Highlight API, shuningdek, element ichidagi ma'lum matn diapazonlarini nishonga olish uchun ham ishlatilishi mumkin. Bu matn belgilash uslubini yanada nozik nazorat qilish imkonini beradi.
Misol: Qidiruv so'zlarini ajratib ko'rsatish
Hujjat ichida qidiruv so'zlarini ajratib ko'rsatmoqchi ekanligingizni tasavvur qiling. Bu ko'pincha CSS Highlight API bilan birgalikda JavaScript'ni talab qiladi.
- Qidiruv so'zlarini aniqlash uchun JavaScript'dan foydalaning: Hujjat ichida qidiruv so'zining barcha takrorlanishlarini topish uchun JavaScript'dan foydalaning.
- Belgilash diapazonlarini yarating: Qidiruv so'zining har bir takrorlanishi uchun diapazonlar yaratish uchun JavaScript'dagi
RangeAPI'sidan foydalaning. - Belgini qo'llang: Yaratilgan diapazonlarga belgini qo'llash uchun
CSS.highlights.set()usulidan foydalaning.
// Qidiruv so'zlarini ajratib ko'rsatish uchun JavaScript kodi
function highlightSearchTerms(searchTerm) {
// Avval, CSS'da maxsus belgini aniqlang
const highlightName = 'search-highlight';
const ranges = [];
// Barcha matn tugunlarini topish
function findTextNodes(el) {
let n, a=[], walk=document.createTreeWalker(el,NodeFilter.SHOW_TEXT,null,false);
while(n=walk.nextNode()) a.push(n);
return a;
}
const textNodes = findTextNodes(document.body);
textNodes.forEach(node => {
let nodeValue = node.nodeValue;
let index = nodeValue.indexOf(searchTerm);
while (index !== -1) {
const range = document.createRange();
range.setStart(node, index);
range.setEnd(node, index + searchTerm.length);
ranges.push(range);
index = nodeValue.indexOf(searchTerm, index + searchTerm.length);
}
});
// Belgilarni CSS.highlights.set() yordamida qo'llash
if (CSS.highlights && CSS.highlights.set) {
CSS.highlights.set(highlightName, ranges);
} else {
console.warn('CSS Custom Highlight API bu brauzerda to\'liq qo\'llab-quvvatlanmaydi. Zaxira varianti taqdim etilmoqda');
// Cheklangan qo'llab-quvvatlashga ega brauzerlar uchun zaxira variantini taqdim etish (masalan, eski Safari)
ranges.forEach(range => {
const span = document.createElement('span');
span.style.backgroundColor = '#FFA07A'; // Och qizg'ish
span.style.color = '#000000'; // Qora
span.className = 'search-highlight-fallback'; // Zaxira uslubi uchun sinf qo'shish
range.surroundContents(span);
});
}
}
// Qidiruv belgisini uslublash uchun CSS kodi
::highlight(search-highlight) {
background-color: #FFA07A; /* Och qizg'ish */
color: #000000; /* Qora */
}
/* API'ni to'liq qo'llab-quvvatlamaydigan brauzerlar uchun zaxira uslubi */
.search-highlight-fallback {
background-color: #FFA07A;
color: #000000;
}
// Foydalanish misoli: "example" atamasini ajratib ko'rsatish
highlightSearchTerms("example");
Ushbu kod parchasi hujjat ichida JavaScript va CSS Custom Highlight API yordamida qidiruv so'zlarini qanday ajratib ko'rsatishni namoyish etadi. JavaScript kodi qidiruv so'zlarini aniqlaydi, har bir takrorlanish uchun diapazonlar yaratadi va ushbu diapazonlarga search-highlight belgisini qo'llaydi. So'ngra CSS kodi ajratilgan matnni och qizg'ish fon va qora matn bilan uslublaydi.
Muhim eslatma: Bu yondashuv JavaScript'ni talab qiladi va CSS.highlights API'siga tayanadi. Qo'llab-quvvatlash universal bo'lmagani uchun zaxira mexanizmi (matnni `span` bilan o'rash va shu `span`ni uslublash kabi) ko'rsatilgan.
Qulaylik masalalari
CSS Custom Highlight API'dan foydalanganda, veb-saytingiz barcha, jumladan, nogironligi bo'lgan foydalanuvchilar uchun ham qulay bo'lishini ta'minlash uchun qulaylikni hisobga olish juda muhim.
Qulay matn belgilash uslubi uchun maslahatlar:
- Yetarli kontrastni ta'minlang: Ko'rish qobiliyati cheklangan foydalanuvchilar uchun o'qishni osonlashtirish maqsadida tanlangan matnning fon va matn rangi o'rtasida yetarli kontrastni saqlang. WCAG ko'rsatmalarida oddiy matn uchun kamida 4.5:1 kontrast nisbati tavsiya etiladi.
- Faqat rangga tayanmang: Matn belgisini ko'rsatish uchun faqat rangga tayanmang. Belgilashni yanada aniqroq qilish uchun tagiga chizish yoki qalinlashtirish kabi qo'shimcha vizual belgilardan foydalaning.
- Yuqori kontrast rejimi uchun muqobil uslubni taqdim eting: Operatsion tizimida yuqori kontrast rejimini yoqadigan foydalanuvchilar sizning maxsus uslublaringizni bekor qilishi mumkin. O'qishni osonlashtirish uchun yuqori kontrast rejimida yaxshi ishlaydigan muqobil uslubni taqdim eting. Yuqori kontrast rejimi yoqilganligini aniqlash uchun
@media (forced-colors: active)kabi media so'rovlaridan foydalanishingiz mumkin. - Yordamchi texnologiyalar bilan sinab ko'ring: Tanlangan matn to'g'ri e'lon qilinishi va tushunilishini ta'minlash uchun veb-saytingizni ekran o'quvchilari kabi yordamchi texnologiyalar bilan sinab ko'ring.
Misol: Yetarli kontrastni ta'minlash
::highlight {
background-color: #000080; /* To'q moviy */
color: #FFFFFF; /* Oq */
}
Ushbu misolda biz to'q moviy fon rangi va oq matn rangini tanladik, bu ko'rish qobiliyati cheklangan foydalanuvchilar uchun yetarli kontrastni ta'minlaydi. Rang tanlovlaringiz qulaylik standartlariga mos kelishini tekshirish uchun har doim rang kontrasti tekshiruvchisidan foydalaning. WebAIM'ning Kontrast Tekshiruvchisi kabi vositalar yordam berishi mumkin.
Amaliy misollar va qo'llash holatlari
CSS Custom Highlight API foydalanuvchi tajribasini yaxshilash uchun keng imkoniyatlarni taqdim etadi. Mana bir nechta amaliy misollar va qo'llash holatlari:
- Kod ajratish: Yuqorida ko'rsatilganidek, siz API'dan kod parchalarini maxsus uslublar bilan ajratib ko'rsatish uchun foydalanishingiz mumkin, bu ularni vizual jihatdan jozibaliroq va o'qish uchun osonroq qiladi.
- Qidiruv so'zlarini ajratish: Foydalanuvchilarga kerakli ma'lumotni tezda topishga yordam berish uchun hujjat ichidagi qidiruv so'zlarini ajratib ko'rsating.
- Xatoliklarni ajratish: Foydalanuvchi e'tiborini jalb qilish uchun shakllar yoki boshqa foydalanuvchi interfeyslaridagi xato yoki ogohlantirishlarni ajratib ko'rsating.
- Iqtiboslarni ajratish: Akademik maqolalar yoki nashrlardagi iqtibos keltirilgan matnni asosiy mazmundan vizual ravishda ajratib ko'rsating.
- Suhbatlarni ajratish: Chat ilovalarida foydalanuvchining o'z xabarlarini yoki ma'lum foydalanuvchilarning xabarlarini kuzatishni osonlashtirish uchun ajratib ko'rsating.
- O'yinlashtirish: O'yinchiga maslahatlar yoki yo'l-yo'riqlar berish uchun o'yindagi ma'lum so'z yoki iboralarni ajratib ko'rsating.
- Matnni qisqartirish: Mazmunning qisqacha xulosasini taqdim etish uchun hujjatdagi asosiy gaplar yoki iboralarni ajratib ko'rsating. Bu ko'pincha muhimlikni aniqlash uchun murakkab algoritmlarni o'z ichiga oladi.
Eng yaxshi amaliyotlar va maslahatlar
CSS Custom Highlight API'dan maksimal darajada foydalanish uchun quyidagi eng yaxshi amaliyotlar va maslahatlarga rioya qiling:
- Tavsiflovchi belgi nomlaridan foydalaning: Belgining maqsadini aniq ko'rsatadigan tavsiflovchi belgi nomlarini tanlang. Bu kodingizni o'qish va saqlashni osonlashtiradi. Masalan,
highlight-1o'rnigacode-highlightdan foydalaning. - Uslublarni izchil saqlang: Yaxlit foydalanuvchi tajribasini yaratish uchun barcha belgilaringizda izchil uslubni saqlang. Izchillikni ta'minlash uchun dizayn tizimi yoki uslublar qo'llanmasidan foydalaning.
- Belgilardan ortiqcha foydalanishdan saqlaning: Belgilardan ortiqcha foydalanmang, chunki bu foydalanuvchilarni chalg'itishi va bezdirishi mumkin. Ularni tejamkorlik bilan va strategik tarzda eng muhim ma'lumotlarga e'tibor qaratish uchun foydalaning.
- Turli qurilmalar va brauzerlarda sinab ko'ring: Maxsus belgilaringiz to'g'ri ko'rsatilishini ta'minlash uchun veb-saytingizni turli qurilmalar va brauzerlarda sinab ko'ring. Mobil qurilmalar va eski brauzerlarga alohida e'tibor bering.
- Ishlash samaradorligini hisobga oling: CSS Custom Highlight API odatda samarali bo'lsa-da, ayniqsa katta hujjatlarda foydalanayotgan belgilar soniga e'tiborli bo'ling. Juda ko'p belgilar ishlash samaradorligiga ta'sir qilishi mumkin. Agar belgilarni boshqarish uchun JavaScript'dan foydalanayotgan bo'lsangiz, DOM manipulyatsiyalari sonini kamaytirish uchun kodingizni optimallashtiring.
- Progressiv yaxshilanishdan foydalaning: Brauzerlarni qo'llab-quvvatlash universal emasligi sababli, progressiv yaxshilanish usullaridan foydalaning. Eski brauzerlardagi foydalanuvchilar uchun tajribaning qulay bo'lib qolishini ta'minlash uchun standart CSS uslubi yordamida zaxira mexanizmini joriy qiling. API yoki zaxira variantidan foydalanishni aniqlash uchun xususiyatlarni aniqlashdan (masalan, `CSS.highlights` mavjudligini tekshirish) foydalanishni o'ylab ko'ring.
Xulosa
CSS Custom Highlight API foydalanuvchi tajribasini yaxshilash va vizual jihatdan jozibaliroq va ma'lumotli matn belgilarini yaratish uchun kuchli vositadir. Ushbu API'ni o'zlashtirib, siz o'z UI dizayningizni keyingi bosqichga olib chiqishingiz va foydalanuvchilarga yanada jozibali va qulay veb-tajribasini taqdim etishingiz mumkin. Brauzerlarni qo'llab-quvvatlash hali ham rivojlanayotgan bo'lsa-da, ushbu API'ni hozirdan tushunish va tajriba o'tkazish, qabul qilinishi ortib borishi bilan sizni eng ilg'or veb-tajribalarini yaratishga tayyorlaydi. Barcha foydalanuvchilar uchun ijobiy tajribani ta'minlash uchun qulaylikka ustuvorlik berishni va eski brauzerlar uchun zaxira variantlarini taqdim etishni unutmang.